import 'dart:developer';


///noSuchMethod
/// java ---》noSuchMethodException
/// js---->undefined
/// 在语言的设计过程当中， 如果存在动态执行概念
/// java的反射 ---》字符串定位函数，  找不到！
/// js  dynamic


void main() {
  //动态成员调用可以尝试调用接收对象上不存在的成员
  //var = 初始化阶段进行类型确认
  //dynamic 不做类型检查    直接提对应的属性，函数
  // js
  // var obj = {"name":"zhangsan"};
  // obj.name;

  // dynamic object = 1;
  //此无效代码将调用整数1 的noSuchMethod 方法，其中Invocation 表示.add(42) 调用和参数(然后抛出)。
  //类可以覆盖 noSuchMethod 以为此类无效动态调用提供自定义行为
  // object.add(42); // Statically allowed, run-time error
  MockList().add(42);
  print(MockList());
}



class MockList<T> implements List  {
  // int add(int i){
  //   return i;
  // }
  @override
  noSuchMethod(Invocation invocation) {
    invocation.noSuchMethod(invocation);
  }
}

